home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 2 / Geek_Gadgets_2_2352.bin / lists / ade-gcc.archive.9602.gz / ade-gcc.archive.9602 / 000091_owner-ade-gcc_Mon Feb 19 07:14:37 1996.msg < prev    next >
Internet Message Format  |  1996-02-28  |  3KB

  1. Return-Path: <owner-ade-gcc>
  2. Received: by fishpond (Smail3.1.29.1 #57)
  3.     id m0toUTk-000gXYa; Mon, 19 Feb 96 07:14 EST
  4. Sender: owner-ade-gcc
  5. Received: from delta.mdy.univie.ac.at by fishpond with smtp
  6.     (Smail3.1.29.1 #57) id m0toUTd-000gXUC; Mon, 19 Feb 96 07:13 EST
  7. Received: from localhost by delta.mdy.univie.ac.at with SMTP
  8.     (1.38.193.4/16.2) id AA22161; Mon, 19 Feb 1996 13:05:12 +0100
  9. Message-Id: <31286777.40D7@mdy.univie.ac.at>
  10. Date: Mon, 19 Feb 1996 13:05:11 +0100
  11. From: Alfred Minarik <am@mdy.univie.ac.at>
  12. X-Mailer: Mozilla 2.0 (X11; I; HP-UX A.09.05 9000/720)
  13. Mime-Version: 1.0
  14. To: Kamil Iskra <kiskra@ernie.icslab.agh.edu.pl>
  15. Cc: Matthias Fleischer <fleischr@IZFM.Uni-Stuttgart.DE>,
  16.         amiga-gcc-port@nic.funet.fi, ADE GCC List <ade-gcc@ninemoons.com>
  17. Subject: Re: Passing arguments in registers and stack checking/extension
  18. References: <Pine.SUN.3.91.960219120359.4888B-100000@ernie>
  19. Content-Type: text/plain; charset=us-ascii
  20. Content-Transfer-Encoding: 7bit
  21. Sender: owner-ade-gcc@ninemoons.com
  22. Precedence: bulk
  23.  
  24. > On Fri, 16 Feb 1996, Matthias Fleischer wrote:
  25. > > > I think the big problem is that this small functions like __link_a5_d0,
  26. > > > __sub_a7_d0 or __stkchk_d0 (or whatever they're called) expect argument in
  27. > > > d0. However, d0 is used to pass argument to user's function, so it can't
  28. > > > be used as argument for stack checking/extension functions.
  29. > > That's true. But if you use stack based arguments for the stackextend
  30. > > functions to get registerized parameters you don't win anything. You only
  31. > > move the overhead of pushing/popping registers out of the normal function
  32. > > call into the stackextend call. I guess any solution that is really fast
  33. > > will need to be very complicated, too :-(.
  34. > You are right. Actually, I'm not aware of any other solution of passing
  35. > arguments than on stack or registers (or in static storage - but this is
  36. > complete braindamage) - since none of these seems reasonable, I guess we
  37. > will have to drop support for register parameters used together with stack
  38. > checking/extension...
  39.  
  40. To me there seems to be a solution of passing both in registers.
  41. As the common sense seems to settle on passing register arguments in
  42. d0,d1,a0,a1,
  43. you could use d2,(+a2) for the time critical stack checking/extension
  44. functions,
  45. which should not need other registers then d2,(+a2).
  46. Without stack-checking d2,a2 would be free for other needs.
  47. Why should this be impossibile ?
  48.  
  49.  - Alfred